home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / lang / eiffel / smalleif.97 / se.t / SmallEiffel / bin_c / compile_to_c1.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-05-02  |  41.0 KB  |  1,581 lines

  1. /* ANSI C code generated by SmallEiffel. */
  2. /*
  3. -- SmallEiffel  -- Release (- 0.97)    --      FRANCE
  4. -- Copyright (C), 1994 - Dominique COLNET and Suzanne COLLIN 
  5. -- University Henri Poincare' - Nancy 1 - email colnet@loria.fr 
  6. -- CRIN (Centre de Recherche en Informatique de Nancy)
  7. -- FRANCE 
  8. */
  9. #include "compile_to_c.h"
  10. T0 *new(int id){
  11. int sz=s[id];
  12. T0 *n=malloc(sz);
  13. memset(n,0,sz);
  14. n->id=id;
  15. return n;
  16. }
  17. T0* rT252runnable(T252 *C,T0* a1,T0 * a2,T0 * a3){
  18. T0* R=NULL;
  19. T0 * _a=NULL;
  20. int _i=0;
  21. /*IF*/if (!(rT158empty((T158*)a1))) {
  22. R=rT252clone(C,a1);
  23. _i=1;
  24. while (!((_i)>(((T158*)R)->_upper))) {
  25. rT52push((T52*)oRBC27small_eiffel,a3);
  26. _a=rT64to_runnable((T64*)rT158item((T158*)R,_i),a2);
  27. /*IF*/if (!(_a)) {
  28. rT252error(rT64start_position((T64*)rT158item((T158*)R,_i)),(T0 *)ms477);
  29. }
  30. else {
  31. rT158put((T158*)R,_a,_i);
  32. }
  33. /*FI*/rT52pop((T52*)oRBC27small_eiffel);
  34. _i=(_i)+(1);
  35. }
  36. }
  37. /*FI*/return R;
  38. }
  39. T0 * rT252run_require(T252 *C,T0 * a1){
  40. T0 * R=NULL;
  41. T0* _ar=NULL;
  42. T0 * _er=NULL;
  43. T0* _r=NULL;
  44. int _i=0;
  45. rT268clear((T268*)oRBC62require_collector);
  46. rT50collect_for((T50*)XrT58base_class(XrT261current_type(a1)),1001,XrT261name(a1));
  47. /*IF*/if (!(rT268empty((T268*)oRBC62require_collector))) {
  48. _i=1;
  49. while (!((_i)>(((T268*)oRBC62require_collector)->_upper))) {
  50. _er=rT268item((T268*)oRBC62require_collector,_i);
  51. _r=rT252runnable(C,((T137*)_er)->_list,XrT261current_type(a1),a1);
  52. /*IF*/if (((int)_r)) {
  53. {T137 *n=((T137*)new(137));
  54. rT137from_runnable(n,_r);
  55. _er=(T0 *)n;}
  56. /*IF*/if (!(_ar)) {
  57. _ar=ma(268,0,1,_er);
  58. }
  59. else {
  60. rT268add_last((T268*)_ar,_er);
  61. }
  62. /*FI*/}
  63. /*FI*/_i=(_i)+(1);
  64. }
  65. /*IF*/if (((int)_ar)) {
  66. {T267 *n=((T267*)new(267));
  67. /*(IRF3*/((n)->_list)=(_ar);
  68. /*)*/R=(T0 *)n;}
  69. }
  70. /*FI*/}
  71. /*FI*/return R;
  72. }
  73. T0*oRBC62require_collector;
  74. void rT252fatal_error(/*C*/T0* a1){
  75. rT45fatal_error((T45*)oRBC27eh,a1);
  76. }
  77. T0 * rT252first_name(T252 *C){
  78. T0 * R=NULL;
  79. R=rT128item((T128*)(C)->_names,1);
  80. return R;
  81. }
  82. T0 * rT252to_run_feature(T252 *C,T0 * a1,T0 * a2){
  83. T0 * R=NULL;
  84. {T281 *n=((T281*)new(281));
  85. rT281make(n,a1,a2,(T0 *)C);
  86. R=(T0 *)n;}
  87. return R;
  88. }
  89. void rT252error(/*C*/T0 * a1,T0* a2){
  90. /*UT*/(T45*)oRBC27eh;
  91. rT45add_position(a1);
  92. rT45error((T45*)oRBC27eh,a2);
  93. }
  94. void rT252fe_undefine(/*C*/T0 * a1,T0 * a2){
  95. /*UT*/(T45*)oRBC27eh;
  96. rT45append((T0 *)ms483);
  97. /*UT*/(T45*)oRBC27eh;
  98. rT45append(XrT67to_string(a1));
  99. /*UT*/(T45*)oRBC27eh;
  100. rT45append((T0 *)ms484);
  101. /*UT*/(T45*)oRBC27eh;
  102. rT45append(((T48*)((T50*)a2)->_base_class_name)->_to_string);
  103. rT252fatal_error((T0 *)ms485);
  104. }
  105. int rT252is_merge_with(T252 *C,T0 * a1,T0 * a2){
  106. int R=0;
  107. int _ne=0;
  108. _ne=/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/;
  109. /*IF*/if (((T0 *)(C)->_result_type)!=((T0 *)XrT62result_type(a1))) {
  110. /*IF*/if ((!((C)->_result_type))||(!(XrT62result_type(a1)))) {
  111. /*UT*/(T45*)oRBC27eh;
  112. rT45add_position(XrT62start_position(a1));
  113. rT252error(rT252start_position(C),(T0 *)ms488);
  114. }
  115. /*FI*/}
  116. /*FI*//*IF*/if (((T0 *)(C)->_arguments)!=((T0 *)XrT62arguments(a1))) {
  117. /*IF*/if ((!((C)->_arguments))||(!(XrT62arguments(a1)))) {
  118. /*UT*/(T45*)oRBC27eh;
  119. rT45add_position(XrT62start_position(a1));
  120. rT252error(rT252start_position(C),(T0 *)ms489);
  121. }
  122.  else if ((rT92count((T92*)(C)->_arguments))!=(rT92count((T92*)XrT62arguments(a1)))) {
  123. /*UT*/(T45*)oRBC27eh;
  124. rT45add_position(XrT62start_position(a1));
  125. rT252error(rT252start_position(C),(T0 *)ms490);
  126. }
  127. /*FI*/}
  128. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  129. /*IF*/if (((int)(C)->_result_type)) {
  130. /*IF*/if (!(XrT58is_a_in((C)->_result_type,XrT62result_type(a1),a2))) {
  131. rT45error((T45*)oRBC27eh,(T0 *)ms491);
  132. }
  133. /*FI*/}
  134. /*FI*/}
  135. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  136. /*IF*/if (((int)(C)->_arguments)) {
  137. /*IF*/if (!(rT92is_a_in((T92*)(C)->_arguments,XrT62arguments(a1),a2))) {
  138. /*UT*/(T45*)oRBC27eh;
  139. rT45add_position(XrT62start_position(a1));
  140. rT252error(rT252start_position(C),(T0 *)ms494);
  141. }
  142. /*FI*/}
  143. /*FI*/}
  144. /*FI*/R=((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0);
  145. return R;
  146. }
  147. T0*oRBC27eh;
  148. T0 * rT252start_position(T252 *C){
  149. T0 * R=NULL;
  150. R=XrT67start_position(rT252first_name(C));
  151. return R;
  152. }
  153. void rT252collect_for(T252 *C,int a1){
  154. /*IF*/if ((a1)==(1001)) {
  155. /*IF*/if (((int)(C)->_require_assertion)) {
  156. /*IF*/if (!(rT268fast_has((T268*)oRBC62require_collector,(C)->_require_assertion))) {
  157. rT268add_last((T268*)oRBC62require_collector,(C)->_require_assertion);
  158. }
  159. /*FI*/}
  160. /*FI*/}
  161. else {
  162. /*IF*/if (((int)(C)->_ensure_assertion)) {
  163. rT157add_into((T157*)(C)->_ensure_assertion,oRBC62assertion_collector);
  164. }
  165. /*FI*/}
  166. /*FI*/}
  167. void rT252add_into(T252 *C,T0 * a1){
  168. T0 * _fn=NULL;
  169. int _i=0;
  170. C->_base_class=rT46base_class((T46*)XrT67start_position(rT128item((T128*)(C)->_names,1)));
  171. _i=1;
  172. while (!((_i)>(rT128count((T128*)(C)->_names)))) {
  173. _fn=rT128item((T128*)(C)->_names,_i);
  174. /*IF*/if (rT61has((T61*)a1,XrT67to_key(_fn))) {
  175. _fn=XrT62first_name(rT61at((T61*)a1,XrT67to_key(_fn)));
  176. /*UT*/(T45*)oRBC27eh;
  177. rT45add_position(XrT67start_position(_fn));
  178. /*UT*/(T45*)oRBC27eh;
  179. rT45add_position(XrT67start_position(rT128item((T128*)(C)->_names,_i)));
  180. rT45error((T45*)oRBC27eh,(T0 *)ms419);
  181. /*UT*/(T45*)oRBC27eh;
  182. rT45append(XrT67to_string(_fn));
  183. rT45error((T45*)oRBC27eh,(T0 *)ms38);
  184. }
  185. else {
  186. rT61put((T61*)a1,(T0 *)C,XrT67to_key(_fn));
  187. }
  188. /*FI*/_i=(_i)+(1);
  189. }
  190. }
  191. T0* rT252clone(T252 *C,T0* a1){
  192. T0* R=NULL;
  193. /*IF*/if (((int)a1)) {
  194. R=(T0 *)new(a1->id);
  195. AF_1
  196. XrT28copy(R,a1);
  197. AF_0
  198. }
  199. /*FI*/return R;
  200. }
  201. T0 * rT252try_to_undefine(T252 *C,T0 * a1,T0 * a2){
  202. T0 * R=NULL;
  203. /*IF*/if (XrT67is_frozen(a1)) {
  204. /*UT*/(T45*)oRBC27eh;
  205. rT45add_position(rT252start_position(C));
  206. rT252error(XrT67start_position(a1),(T0 *)ms482);
  207. rT252fe_undefine(a1,a2);
  208. }
  209. else {
  210. R=rT252try_to_undefine_aux(C,a1,a2);
  211. /*IF*/if (((int)R)) {
  212. XrT203set_clients(R,(C)->_clients);
  213. }
  214. else {
  215. rT252fe_undefine(a1,a2);
  216. }
  217. /*FI*/}
  218. /*FI*/return R;
  219. }
  220. T0 * rT252try_to_undefine_aux(T252 *C,T0 * a1,T0 * a2){
  221. T0 * R=NULL;
  222. {T205 *n=((T205*)new(205));
  223. rT205from_effective(n,a1,(C)->_arguments,(C)->_result_type,(C)->_require_assertion,(C)->_ensure_assertion,a2);
  224. R=(T0 *)n;}return R;
  225. }
  226. void rT252set_header_comment(T252 *C,T0 * a1){
  227. /*IF*/if ((((int)a1))&&((rT59count((T59*)a1))>(1))) {
  228. C->_end_comment=a1;
  229. }
  230. /*FI*/}
  231. int rT252can_hide(T252 *C,T0 * a1,T0 * a2){
  232. int R=0;
  233. int _ne=0;
  234. _ne=/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/;
  235. /*IF*/if (((T0 *)(C)->_result_type)!=((T0 *)XrT62result_type(a1))) {
  236. /*IF*/if ((!((C)->_result_type))||(!(XrT62result_type(a1)))) {
  237. /*UT*/(T45*)oRBC27eh;
  238. rT45add_position(XrT62start_position(a1));
  239. rT252error(rT252start_position(C),(T0 *)ms501);
  240. }
  241. /*FI*/}
  242. /*FI*//*IF*/if (((T0 *)(C)->_arguments)!=((T0 *)XrT62arguments(a1))) {
  243. /*IF*/if ((!((C)->_arguments))||(!(XrT62arguments(a1)))) {
  244. /*UT*/(T45*)oRBC27eh;
  245. rT45add_position(XrT62start_position(a1));
  246. rT252error(rT252start_position(C),(T0 *)ms502);
  247. }
  248.  else if ((rT92count((T92*)(C)->_arguments))!=(rT92count((T92*)XrT62arguments(a1)))) {
  249. /*UT*/(T45*)oRBC27eh;
  250. rT45add_position(XrT62start_position(a1));
  251. rT252error(rT252start_position(C),(T0 *)ms503);
  252. }
  253. /*FI*/}
  254. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  255. /*IF*/if (((int)(C)->_result_type)) {
  256. /*IF*/if (!(XrT58is_a_in((C)->_result_type,XrT62result_type(a1),a2))) {
  257. /*UT*/(T45*)oRBC27eh;
  258. rT45append((T0 *)ms504);
  259. /*UT*/(T45*)oRBC27eh;
  260. rT45append(XrT58run_time_mark(((T260*)a2)->_current_type));
  261. rT45error((T45*)oRBC27eh,(T0 *)ms505);
  262. }
  263. /*FI*/}
  264. /*FI*/}
  265. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  266. /*IF*/if (((int)(C)->_arguments)) {
  267. /*IF*/if (!(rT92is_a_in((T92*)(C)->_arguments,XrT62arguments(a1),a2))) {
  268. /*UT*/(T45*)oRBC27eh;
  269. rT45add_position(XrT62start_position(a1));
  270. /*UT*/(T45*)oRBC27eh;
  271. rT45add_position(rT252start_position(C));
  272. /*UT*/(T45*)oRBC27eh;
  273. rT45append((T0 *)ms506);
  274. /*UT*/(T45*)oRBC27eh;
  275. rT45append(XrT58run_time_mark(((T260*)a2)->_current_type));
  276. rT45error((T45*)oRBC27eh,(T0 *)ms507);
  277. }
  278. /*FI*/}
  279. /*FI*/}
  280. /*FI*/R=((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0);
  281. return R;
  282. }
  283. T0 * rT252run_ensure(T252 *C,T0 * a1){
  284. T0 * R=NULL;
  285. T0* _r=NULL;
  286. rT158clear((T158*)oRBC62assertion_collector);
  287. rT50collect_for((T50*)XrT58base_class(XrT261current_type(a1)),1002,XrT261name(a1));
  288. _r=rT252runnable(C,oRBC62assertion_collector,XrT261current_type(a1),a1);
  289. /*IF*/if (((int)_r)) {
  290. {T157 *n=((T157*)new(157));
  291. rT157from_runnable(n,_r);
  292. R=(T0 *)n;}
  293. }
  294. /*FI*/return R;
  295. }
  296. T0*oRBC27small_eiffel;
  297. T0 * rT252base_class_name(T252 *C){
  298. T0 * R=NULL;
  299. R=((T50*)(C)->_base_class)->_base_class_name;
  300. return R;
  301. }
  302. void rT252copy(T252 *C,T0 * a1){
  303. /*IF*//*AF*//*AE*/
  304. memcpy(C,a1,s[C->id]);
  305. /*FI*/}
  306. void rT252set_rescue_compound(T252 *C,T0 * a1){
  307. /*IF*/if ((((int)a1))&&(/*(IRF4*/0/*)*/)) {
  308. rT252error(rT252start_position(C),(T0 *)ms402);
  309. }
  310. /*FI*/C->_rescue_compound=a1;
  311. }
  312. void rT252make_e_feature(T252 *C,T0 * a1,T0 * a2){
  313. C->_names=a1;
  314. C->_result_type=a2;
  315. }
  316. void rT252make_routine(T252 *C,T0 * a1,T0 * a2,T0 * a3,T0 * a4,T0 * a5){
  317. rT252make_e_feature(C,a1,NULL);
  318. C->_header_comment=a4;
  319. C->_arguments=a2;
  320. C->_obsolete_mark=a3;
  321. C->_require_assertion=a5;
  322. }
  323. void rT252make_effective_routine(T252 *C,T0 * a1,T0 * a2,T0 * a3,T0 * a4,T0 * a5,T0 * a6,T0 * a7){
  324. rT252make_routine(C,a1,a2,a3,a4,a5);
  325. C->_local_vars=a6;
  326. C->_routine_body=a7;
  327. C->_use_current_state=1015;
  328. }
  329. T0*oRBC62assertion_collector;
  330. void rT252make(T252 *C,T0 * a1,T0 * a2,T0 * a3,T0 * a4,T0 * a5,T0 * a6,T0 * a7,T0 * a8){
  331. rT252make_effective_routine(C,a1,a2,a4,a5,a6,a7,a8);
  332. C->_result_type=a3;
  333. }
  334. int rT77static_value(T77 *C){
  335. int R=0;
  336. R=(C)->_static_value_mem;
  337. return R;
  338. }
  339. void rT77fatal_error(/*C*/T0* a1){
  340. rT45fatal_error((T45*)oRBC27eh,a1);
  341. }
  342. T0 * rT77to_runnable(T77 *C,T0 * a1){
  343. T0 * R=NULL;
  344. /*IF*/if (!((C)->_current_type)) {
  345. C->_current_type=a1;
  346. R=(T0 *)C;
  347. }
  348. else {
  349. R=rT77clone(C,(T0 *)C);
  350. R=rT77to_runnable((T77*)R,a1);
  351. }
  352. /*FI*/return R;
  353. }
  354. void rT77error(/*C*/T0 * a1,T0* a2){
  355. /*UT*/(T45*)oRBC27eh;
  356. rT45add_position(a1);
  357. rT45error((T45*)oRBC27eh,a2);
  358. }
  359. T0 * rT77add_comment(T77 *C,T0 * a1){
  360. T0 * R=NULL;
  361. /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
  362. R=(T0 *)C;
  363. }
  364. else {
  365. {T220 *n=((T220*)new(220));
  366. rT220make(n,(T0 *)C,a1);
  367. R=(T0 *)n;}}
  368. /*FI*/return R;
  369. }
  370. T0 * rT77result_type(/*C*/void){
  371. T0 * R=NULL;
  372. rT77error(/*(IRF4*/NULL/*)*/,(T0 *)ms1155);
  373. return R;
  374. }
  375. T0* rT77clone(T77 *C,T0* a1){
  376. T0* R=NULL;
  377. /*IF*/if (((int)a1)) {
  378. R=(T0 *)new(a1->id);
  379. AF_1
  380. XrT28copy(R,a1);
  381. AF_0
  382. }
  383. /*FI*/return R;
  384. }
  385. int rT77to_integer(/*C*/void){
  386. int R=0;
  387. rT77error(/*(IRF4*/NULL/*)*/,(T0 *)ms175);
  388. return R;
  389. }
  390. T0 * rT77written_in(/*C*/void){
  391. T0 * R=NULL;
  392. T0 * _sp=NULL;
  393. _sp=/*(IRF4*/NULL/*)*/;
  394. /*IF*/if (((int)_sp)) {
  395. R=((T46*)_sp)->_base_class_name;
  396. }
  397. /*FI*/return R;
  398. }
  399. void rT77copy(T77 *C,T0 * a1){
  400. /*IF*//*AF*//*AE*/
  401. memcpy(C,a1,s[C->id]);
  402. /*FI*/}
  403. int rT77is_a(/*C*/T0 * a1){
  404. int R=0;
  405. R=XrT58is_a(XrT102run_type(rT77result_type()),XrT58run_type(XrT68result_type(a1)));
  406. /*IF*/if (!(R)) {
  407. /*UT*/(T45*)oRBC27eh;
  408. rT45add_position(/*(IRF4*/NULL/*)*/);
  409. rT77error(XrT68start_position(a1),(T0 *)ms1261);
  410. }
  411. /*FI*/return R;
  412. }
  413. T0*oRBC27cpp;
  414. int rT79static_value(T79 *C){
  415. int R=0;
  416. R=(C)->_static_value_mem;
  417. return R;
  418. }
  419. T0 * rT79to_runnable(T79 *C,T0 * a1){
  420. T0 * R=NULL;
  421. /*IF*/if (!((C)->_current_type)) {
  422. C->_current_type=a1;
  423. R=(T0 *)C;
  424. }
  425. else {
  426. R=rT79clone(C,(T0 *)C);
  427. /*(IRF3*/(((T79*)R)->_current_type)=(a1);
  428. /*)*/}
  429. /*FI*/return R;
  430. }
  431. void rT79error(/*C*/T0 * a1,T0* a2){
  432. /*UT*/(T45*)oRBC27eh;
  433. rT45add_position(a1);
  434. rT45error((T45*)oRBC27eh,a2);
  435. }
  436. T0 * rT79add_comment(T79 *C,T0 * a1){
  437. T0 * R=NULL;
  438. /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
  439. R=(T0 *)C;
  440. }
  441. else {
  442. {T220 *n=((T220*)new(220));
  443. rT220make(n,(T0 *)C,a1);
  444. R=(T0 *)n;}}
  445. /*FI*/return R;
  446. }
  447. int ofBC79result_type=0;
  448. T0*oRBC79result_type;
  449. T0 * rT79result_type(/*C*/void){
  450. T0 * R=NULL;
  451. if (ofBC79result_type==0){
  452. ofBC79result_type=1;
  453. {T114 *n=((T114*)new(114));
  454. rT114make(n,NULL);
  455. R=(T0 *)n;}
  456. oRBC79result_type=R;}
  457. return oRBC79result_type;}
  458. T0 * rT79_px45(T79 *C){
  459. T0 * R=NULL;
  460. rT79error((C)->_start_position,(T0 *)ms174);
  461. return R;
  462. }
  463. T0* rT79clone(T79 *C,T0* a1){
  464. T0* R=NULL;
  465. /*IF*/if (((int)a1)) {
  466. R=(T0 *)new(a1->id);
  467. AF_1
  468. XrT28copy(R,a1);
  469. AF_0
  470. }
  471. /*FI*/return R;
  472. }
  473. void rT79compile_to_c(T79 *C){
  474. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1159);
  475. rT40put_string((T40*)oRBC27cpp,(C)->_to_string);
  476. rT40put_character((T40*)oRBC27cpp,'\51');
  477. }
  478. int rT79to_integer(T79 *C){
  479. int R=0;
  480. rT79error((C)->_start_position,(T0 *)ms175);
  481. return R;
  482. }
  483. T0 * rT79to_integer_constant(T79 *C){
  484. T0 * R=NULL;
  485. rT79error((C)->_start_position,(T0 *)ms273);
  486. return R;
  487. }
  488. T0 * rT79written_in(T79 *C){
  489. T0 * R=NULL;
  490. T0 * _sp=NULL;
  491. _sp=(C)->_start_position;
  492. /*IF*/if (((int)_sp)) {
  493. R=((T46*)_sp)->_base_class_name;
  494. }
  495. /*FI*/return R;
  496. }
  497. void rT79copy(T79 *C,T0 * a1){
  498. /*IF*//*AF*//*AE*/
  499. memcpy(C,a1,s[C->id]);
  500. /*FI*/}
  501. int rT79is_a(T79 *C,T0 * a1){
  502. int R=0;
  503. R=XrT58is_a(rT114run_type((T114*)rT79result_type()),XrT58run_type(XrT68result_type(a1)));
  504. /*IF*/if (!(R)) {
  505. /*UT*/(T45*)oRBC27eh;
  506. rT45add_position((C)->_start_position);
  507. rT79error(XrT68start_position(a1),(T0 *)ms1261);
  508. }
  509. /*FI*/return R;
  510. }
  511. void rT79make(T79 *C,T0 * a1,T0* a2,int a3,float a4,int a5){
  512. C->_start_position=a1;
  513. C->_to_string=a2;
  514. C->_integral_part=a3;
  515. C->_fractional_part=a4;
  516. C->_exponent=a5;
  517. }
  518. int rT168static_value(T168 *C){
  519. int R=0;
  520. R=(C)->_static_value_mem;
  521. return R;
  522. }
  523. T0 * rT168to_runnable(T168 *C,T0 * a1){
  524. T0 * R=NULL;
  525. T0 * _exp=NULL;
  526. /*IF*/if (!((C)->_current_type)) {
  527. C->_current_type=a1;
  528. _exp=XrT68to_runnable((C)->_expression,a1);
  529. /*IF*/if (!(_exp)) {
  530. rT168error(rT168start_position(C),(T0 *)ms1146);
  531. }
  532. else {
  533. C->_expression=_exp;
  534. }
  535. /*FI*/C->_id=rT40next_e_old_id((T40*)oRBC27cpp);
  536. R=(T0 *)C;
  537. }
  538. else {
  539. {T168 *n=((T168*)new(168));
  540. /*(IRF3*/((n)->_expression)=((C)->_expression);
  541. /*)*/R=(T0 *)n;}
  542. R=rT168to_runnable((T168*)R,a1);
  543. }
  544. /*FI*/return R;
  545. }
  546. void rT168error(/*C*/T0 * a1,T0* a2){
  547. /*UT*/(T45*)oRBC27eh;
  548. rT45add_position(a1);
  549. rT45error((T45*)oRBC27eh,a2);
  550. }
  551. T0 * rT168add_comment(T168 *C,T0 * a1){
  552. T0 * R=NULL;
  553. /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
  554. R=(T0 *)C;
  555. }
  556. else {
  557. {T220 *n=((T220*)new(220));
  558. rT220make(n,(T0 *)C,a1);
  559. R=(T0 *)n;}}
  560. /*FI*/return R;
  561. }
  562. T0 * rT168result_type(T168 *C){
  563. T0 * R=NULL;
  564. R=XrT68result_type((C)->_expression);
  565. return R;
  566. }
  567. T0 * rT168start_position(T168 *C){
  568. T0 * R=NULL;
  569. R=XrT68start_position((C)->_expression);
  570. return R;
  571. }
  572. int rT168use_current(T168 *C){
  573. int R=0;
  574. R=XrT68use_current((C)->_expression);
  575. return R;
  576. }
  577. void rT168compile_to_c_old(T168 *C){
  578. T0 * _t=NULL;
  579. _t=XrT58run_type(rT168result_type(C));
  580. rT40put_character((T40*)oRBC27cpp,'T');
  581. /*IF*/if (XrT58is_expanded(_t)) {
  582. rT40put_integer((T40*)oRBC27cpp,XrT58id(_t));
  583. rT40put_character((T40*)oRBC27cpp,'\40');
  584. }
  585. else {
  586. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1521);
  587. }
  588. /*FI*/rT40put_character((T40*)oRBC27cpp,'o');
  589. rT40put_integer((T40*)oRBC27cpp,(C)->_id);
  590. rT40put_character((T40*)oRBC27cpp,'\75');
  591. XrT68compile_to_c((C)->_expression);
  592. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1522);
  593. }
  594. void rT168compile_to_c(T168 *C){
  595. rT40put_character((T40*)oRBC27cpp,'o');
  596. rT40put_integer((T40*)oRBC27cpp,(C)->_id);
  597. }
  598. int rT168to_integer(T168 *C){
  599. int R=0;
  600. rT168error(rT168start_position(C),(T0 *)ms175);
  601. return R;
  602. }
  603. T0 * rT168written_in(T168 *C){
  604. T0 * R=NULL;
  605. T0 * _sp=NULL;
  606. _sp=rT168start_position(C);
  607. /*IF*/if (((int)_sp)) {
  608. R=((T46*)_sp)->_base_class_name;
  609. }
  610. /*FI*/return R;
  611. }
  612. void rT168copy(T168 *C,T0 * a1){
  613. /*IF*//*AF*//*AE*/
  614. memcpy(C,a1,s[C->id]);
  615. /*FI*/}
  616. int rT168is_a(T168 *C,T0 * a1){
  617. int R=0;
  618. R=XrT58is_a(XrT58run_type(rT168result_type(C)),XrT58run_type(XrT68result_type(a1)));
  619. /*IF*/if (!(R)) {
  620. /*UT*/(T45*)oRBC27eh;
  621. rT45add_position(rT168start_position(C));
  622. rT168error(XrT68start_position(a1),(T0 *)ms1261);
  623. }
  624. /*FI*/return R;
  625. }
  626. void rT255fatal_error(/*C*/T0* a1){
  627. rT45fatal_error((T45*)oRBC27eh,a1);
  628. }
  629. T0 * rT255first_name(T255 *C){
  630. T0 * R=NULL;
  631. R=rT128item((T128*)(C)->_names,1);
  632. return R;
  633. }
  634. T0 * rT255to_run_feature(T255 *C,T0 * a1,T0 * a2){
  635. T0 * R=NULL;
  636. {T273 *n=((T273*)new(273));
  637. rT273make(n,a1,a2,(T0 *)C);
  638. R=(T0 *)n;}
  639. return R;
  640. }
  641. void rT255error(/*C*/T0 * a1,T0* a2){
  642. /*UT*/(T45*)oRBC27eh;
  643. rT45add_position(a1);
  644. rT45error((T45*)oRBC27eh,a2);
  645. }
  646. void rT255fe_undefine(/*C*/T0 * a1,T0 * a2){
  647. /*UT*/(T45*)oRBC27eh;
  648. rT45append((T0 *)ms483);
  649. /*UT*/(T45*)oRBC27eh;
  650. rT45append(XrT67to_string(a1));
  651. /*UT*/(T45*)oRBC27eh;
  652. rT45append((T0 *)ms484);
  653. /*UT*/(T45*)oRBC27eh;
  654. rT45append(((T48*)((T50*)a2)->_base_class_name)->_to_string);
  655. rT255fatal_error((T0 *)ms485);
  656. }
  657. int rT255is_merge_with(T255 *C,T0 * a1,T0 * a2){
  658. int R=0;
  659. int _ne=0;
  660. _ne=/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/;
  661. /*IF*/if (((T0 *)(C)->_result_type)!=((T0 *)XrT62result_type(a1))) {
  662. /*IF*/if ((!((C)->_result_type))||(!(XrT62result_type(a1)))) {
  663. /*UT*/(T45*)oRBC27eh;
  664. rT45add_position(XrT62start_position(a1));
  665. rT255error(rT255start_position(C),(T0 *)ms488);
  666. }
  667. /*FI*/}
  668. /*FI*//*IF*/if (((T0 *)(C)->_arguments)!=((T0 *)XrT62arguments(a1))) {
  669. /*IF*/if ((!((C)->_arguments))||(!(XrT62arguments(a1)))) {
  670. /*UT*/(T45*)oRBC27eh;
  671. rT45add_position(XrT62start_position(a1));
  672. rT255error(rT255start_position(C),(T0 *)ms489);
  673. }
  674.  else if ((rT92count((T92*)(C)->_arguments))!=(rT92count((T92*)XrT62arguments(a1)))) {
  675. /*UT*/(T45*)oRBC27eh;
  676. rT45add_position(XrT62start_position(a1));
  677. rT255error(rT255start_position(C),(T0 *)ms490);
  678. }
  679. /*FI*/}
  680. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  681. /*IF*/if (((int)(C)->_result_type)) {
  682. /*IF*/if (!(XrT58is_a_in((C)->_result_type,XrT62result_type(a1),a2))) {
  683. rT45error((T45*)oRBC27eh,(T0 *)ms491);
  684. }
  685. /*FI*/}
  686. /*FI*/}
  687. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  688. /*IF*/if (((int)(C)->_arguments)) {
  689. /*IF*/if (!(rT92is_a_in((T92*)(C)->_arguments,XrT62arguments(a1),a2))) {
  690. /*UT*/(T45*)oRBC27eh;
  691. rT45add_position(XrT62start_position(a1));
  692. rT255error(rT255start_position(C),(T0 *)ms494);
  693. }
  694. /*FI*/}
  695. /*FI*/}
  696. /*FI*/R=((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0);
  697. return R;
  698. }
  699. T0 * rT255start_position(T255 *C){
  700. T0 * R=NULL;
  701. R=XrT67start_position(rT255first_name(C));
  702. return R;
  703. }
  704. void rT255collect_for(T255 *C,int a1){
  705. /*IF*/if ((a1)==(1001)) {
  706. /*IF*/if (((int)(C)->_require_assertion)) {
  707. /*IF*/if (!(rT268fast_has((T268*)oRBC62require_collector,(C)->_require_assertion))) {
  708. rT268add_last((T268*)oRBC62require_collector,(C)->_require_assertion);
  709. }
  710. /*FI*/}
  711. /*FI*/}
  712. else {
  713. /*IF*/if (((int)(C)->_ensure_assertion)) {
  714. rT157add_into((T157*)(C)->_ensure_assertion,oRBC62assertion_collector);
  715. }
  716. /*FI*/}
  717. /*FI*/}
  718. void rT255add_into(T255 *C,T0 * a1){
  719. T0 * _fn=NULL;
  720. int _i=0;
  721. C->_base_class=rT46base_class((T46*)XrT67start_position(rT128item((T128*)(C)->_names,1)));
  722. _i=1;
  723. while (!((_i)>(rT128count((T128*)(C)->_names)))) {
  724. _fn=rT128item((T128*)(C)->_names,_i);
  725. /*IF*/if (rT61has((T61*)a1,XrT67to_key(_fn))) {
  726. _fn=XrT62first_name(rT61at((T61*)a1,XrT67to_key(_fn)));
  727. /*UT*/(T45*)oRBC27eh;
  728. rT45add_position(XrT67start_position(_fn));
  729. /*UT*/(T45*)oRBC27eh;
  730. rT45add_position(XrT67start_position(rT128item((T128*)(C)->_names,_i)));
  731. rT45error((T45*)oRBC27eh,(T0 *)ms419);
  732. /*UT*/(T45*)oRBC27eh;
  733. rT45append(XrT67to_string(_fn));
  734. rT45error((T45*)oRBC27eh,(T0 *)ms38);
  735. }
  736. else {
  737. rT61put((T61*)a1,(T0 *)C,XrT67to_key(_fn));
  738. }
  739. /*FI*/_i=(_i)+(1);
  740. }
  741. }
  742. T0 * rT255try_to_undefine(T255 *C,T0 * a1,T0 * a2){
  743. T0 * R=NULL;
  744. /*IF*/if (XrT67is_frozen(a1)) {
  745. /*UT*/(T45*)oRBC27eh;
  746. rT45add_position(rT255start_position(C));
  747. rT255error(XrT67start_position(a1),(T0 *)ms482);
  748. rT255fe_undefine(a1,a2);
  749. }
  750. else {
  751. R=rT255try_to_undefine_aux(C,a1,a2);
  752. /*IF*/if (((int)R)) {
  753. XrT203set_clients(R,(C)->_clients);
  754. }
  755. else {
  756. rT255fe_undefine(a1,a2);
  757. }
  758. /*FI*/}
  759. /*FI*/return R;
  760. }
  761. T0 * rT255try_to_undefine_aux(T255 *C,T0 * a1,T0 * a2){
  762. T0 * R=NULL;
  763. rT255error(rT255start_position(C),(T0 *)ms1519);
  764. rT255fe_undefine(a1,a2);
  765. return R;
  766. }
  767. void rT255set_header_comment(T255 *C,T0 * a1){
  768. /*IF*/if ((((int)a1))&&((rT59count((T59*)a1))>(1))) {
  769. C->_end_comment=a1;
  770. }
  771. /*FI*/}
  772. void rT255mapping_c_name(T255 *C){
  773. rT50mapping_c((T50*)(C)->_base_class);
  774. XrT67mapping_c(rT255first_name(C));
  775. }
  776. int rT255can_hide(T255 *C,T0 * a1,T0 * a2){
  777. int R=0;
  778. int _ne=0;
  779. _ne=/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/;
  780. /*IF*/if (((T0 *)(C)->_result_type)!=((T0 *)XrT62result_type(a1))) {
  781. /*IF*/if ((!((C)->_result_type))||(!(XrT62result_type(a1)))) {
  782. /*UT*/(T45*)oRBC27eh;
  783. rT45add_position(XrT62start_position(a1));
  784. rT255error(rT255start_position(C),(T0 *)ms501);
  785. }
  786. /*FI*/}
  787. /*FI*//*IF*/if (((T0 *)(C)->_arguments)!=((T0 *)XrT62arguments(a1))) {
  788. /*IF*/if ((!((C)->_arguments))||(!(XrT62arguments(a1)))) {
  789. /*UT*/(T45*)oRBC27eh;
  790. rT45add_position(XrT62start_position(a1));
  791. rT255error(rT255start_position(C),(T0 *)ms502);
  792. }
  793.  else if ((rT92count((T92*)(C)->_arguments))!=(rT92count((T92*)XrT62arguments(a1)))) {
  794. /*UT*/(T45*)oRBC27eh;
  795. rT45add_position(XrT62start_position(a1));
  796. rT255error(rT255start_position(C),(T0 *)ms503);
  797. }
  798. /*FI*/}
  799. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  800. /*IF*/if (((int)(C)->_result_type)) {
  801. /*IF*/if (!(XrT58is_a_in((C)->_result_type,XrT62result_type(a1),a2))) {
  802. /*UT*/(T45*)oRBC27eh;
  803. rT45append((T0 *)ms504);
  804. /*UT*/(T45*)oRBC27eh;
  805. rT45append(XrT58run_time_mark(((T260*)a2)->_current_type));
  806. rT45error((T45*)oRBC27eh,(T0 *)ms505);
  807. }
  808. /*FI*/}
  809. /*FI*/}
  810. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  811. /*IF*/if (((int)(C)->_arguments)) {
  812. /*IF*/if (!(rT92is_a_in((T92*)(C)->_arguments,XrT62arguments(a1),a2))) {
  813. /*UT*/(T45*)oRBC27eh;
  814. rT45add_position(XrT62start_position(a1));
  815. /*UT*/(T45*)oRBC27eh;
  816. rT45add_position(rT255start_position(C));
  817. /*UT*/(T45*)oRBC27eh;
  818. rT45append((T0 *)ms506);
  819. /*UT*/(T45*)oRBC27eh;
  820. rT45append(XrT58run_time_mark(((T260*)a2)->_current_type));
  821. rT45error((T45*)oRBC27eh,(T0 *)ms507);
  822. }
  823. /*FI*/}
  824. /*FI*/}
  825. /*FI*/R=((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0);
  826. return R;
  827. }
  828. T0 * rT255base_class_name(T255 *C){
  829. T0 * R=NULL;
  830. R=((T50*)(C)->_base_class)->_base_class_name;
  831. return R;
  832. }
  833. void rT255copy(T255 *C,T0 * a1){
  834. /*IF*//*AF*//*AE*/
  835. memcpy(C,a1,s[C->id]);
  836. /*FI*/}
  837. void rT255set_rescue_compound(T255 *C,T0 * a1){
  838. /*IF*/if ((((int)a1))&&(/*(IRF4*/0/*)*/)) {
  839. rT255error(rT255start_position(C),(T0 *)ms402);
  840. }
  841. /*FI*/C->_rescue_compound=a1;
  842. }
  843. void rT255make_e_feature(T255 *C,T0 * a1,T0 * a2){
  844. C->_names=a1;
  845. C->_result_type=a2;
  846. }
  847. void rT255make_routine(T255 *C,T0 * a1,T0 * a2,T0 * a3,T0 * a4,T0 * a5){
  848. rT255make_e_feature(C,a1,NULL);
  849. C->_header_comment=a4;
  850. C->_arguments=a2;
  851. C->_obsolete_mark=a3;
  852. C->_require_assertion=a5;
  853. }
  854. void rT255make_effective_routine(T255 *C,T0 * a1,T0 * a2,T0 * a3,T0 * a4,T0 * a5,T0 * a6,T0 * a7){
  855. rT255make_routine(C,a1,a2,a3,a4,a5);
  856. C->_local_vars=a6;
  857. C->_routine_body=a7;
  858. C->_use_current_state=1015;
  859. }
  860. void rT255make(T255 *C,T0 * a1,T0 * a2,T0 * a3,T0 * a4,T0 * a5,T0 * a6,T0 * a7,T0 * a8){
  861. rT255make_effective_routine(C,a1,a2,a4,a5,a6,a7,a8);
  862. C->_result_type=a3;
  863. }
  864. void rT254fatal_error(/*C*/T0* a1){
  865. rT45fatal_error((T45*)oRBC27eh,a1);
  866. }
  867. T0 * rT254first_name(T254 *C){
  868. T0 * R=NULL;
  869. R=rT128item((T128*)(C)->_names,1);
  870. return R;
  871. }
  872. T0 * rT254to_run_feature(T254 *C,T0 * a1,T0 * a2){
  873. T0 * R=NULL;
  874. {T282 *n=((T282*)new(282));
  875. rT282make(n,a1,a2,(T0 *)C);
  876. R=(T0 *)n;}
  877. return R;
  878. }
  879. void rT254error(/*C*/T0 * a1,T0* a2){
  880. /*UT*/(T45*)oRBC27eh;
  881. rT45add_position(a1);
  882. rT45error((T45*)oRBC27eh,a2);
  883. }
  884. void rT254fe_undefine(/*C*/T0 * a1,T0 * a2){
  885. /*UT*/(T45*)oRBC27eh;
  886. rT45append((T0 *)ms483);
  887. /*UT*/(T45*)oRBC27eh;
  888. rT45append(XrT67to_string(a1));
  889. /*UT*/(T45*)oRBC27eh;
  890. rT45append((T0 *)ms484);
  891. /*UT*/(T45*)oRBC27eh;
  892. rT45append(((T48*)((T50*)a2)->_base_class_name)->_to_string);
  893. rT254fatal_error((T0 *)ms485);
  894. }
  895. int rT254is_merge_with(T254 *C,T0 * a1,T0 * a2){
  896. int R=0;
  897. int _ne=0;
  898. _ne=/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/;
  899. /*IF*/if (((T0 *)(C)->_result_type)!=((T0 *)XrT62result_type(a1))) {
  900. /*IF*/if ((!((C)->_result_type))||(!(XrT62result_type(a1)))) {
  901. /*UT*/(T45*)oRBC27eh;
  902. rT45add_position(XrT62start_position(a1));
  903. rT254error(rT254start_position(C),(T0 *)ms488);
  904. }
  905. /*FI*/}
  906. /*FI*//*IF*/if (((T0 *)(C)->_arguments)!=((T0 *)XrT62arguments(a1))) {
  907. /*IF*/if ((!((C)->_arguments))||(!(XrT62arguments(a1)))) {
  908. /*UT*/(T45*)oRBC27eh;
  909. rT45add_position(XrT62start_position(a1));
  910. rT254error(rT254start_position(C),(T0 *)ms489);
  911. }
  912.  else if ((rT92count((T92*)(C)->_arguments))!=(rT92count((T92*)XrT62arguments(a1)))) {
  913. /*UT*/(T45*)oRBC27eh;
  914. rT45add_position(XrT62start_position(a1));
  915. rT254error(rT254start_position(C),(T0 *)ms490);
  916. }
  917. /*FI*/}
  918. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  919. /*IF*/if (((int)(C)->_result_type)) {
  920. /*IF*/if (!(XrT58is_a_in((C)->_result_type,XrT62result_type(a1),a2))) {
  921. rT45error((T45*)oRBC27eh,(T0 *)ms491);
  922. }
  923. /*FI*/}
  924. /*FI*/}
  925. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  926. /*IF*/if (((int)(C)->_arguments)) {
  927. /*IF*/if (!(rT92is_a_in((T92*)(C)->_arguments,XrT62arguments(a1),a2))) {
  928. /*UT*/(T45*)oRBC27eh;
  929. rT45add_position(XrT62start_position(a1));
  930. rT254error(rT254start_position(C),(T0 *)ms494);
  931. }
  932. /*FI*/}
  933. /*FI*/}
  934. /*FI*/R=((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0);
  935. return R;
  936. }
  937. T0 * rT254start_position(T254 *C){
  938. T0 * R=NULL;
  939. R=XrT67start_position(rT254first_name(C));
  940. return R;
  941. }
  942. void rT254collect_for(T254 *C,int a1){
  943. /*IF*/if ((a1)==(1001)) {
  944. /*IF*/if (((int)(C)->_require_assertion)) {
  945. /*IF*/if (!(rT268fast_has((T268*)oRBC62require_collector,(C)->_require_assertion))) {
  946. rT268add_last((T268*)oRBC62require_collector,(C)->_require_assertion);
  947. }
  948. /*FI*/}
  949. /*FI*/}
  950. else {
  951. /*IF*/if (((int)(C)->_ensure_assertion)) {
  952. rT157add_into((T157*)(C)->_ensure_assertion,oRBC62assertion_collector);
  953. }
  954. /*FI*/}
  955. /*FI*/}
  956. void rT254add_into(T254 *C,T0 * a1){
  957. T0 * _fn=NULL;
  958. int _i=0;
  959. C->_base_class=rT46base_class((T46*)XrT67start_position(rT128item((T128*)(C)->_names,1)));
  960. _i=1;
  961. while (!((_i)>(rT128count((T128*)(C)->_names)))) {
  962. _fn=rT128item((T128*)(C)->_names,_i);
  963. /*IF*/if (rT61has((T61*)a1,XrT67to_key(_fn))) {
  964. _fn=XrT62first_name(rT61at((T61*)a1,XrT67to_key(_fn)));
  965. /*UT*/(T45*)oRBC27eh;
  966. rT45add_position(XrT67start_position(_fn));
  967. /*UT*/(T45*)oRBC27eh;
  968. rT45add_position(XrT67start_position(rT128item((T128*)(C)->_names,_i)));
  969. rT45error((T45*)oRBC27eh,(T0 *)ms419);
  970. /*UT*/(T45*)oRBC27eh;
  971. rT45append(XrT67to_string(_fn));
  972. rT45error((T45*)oRBC27eh,(T0 *)ms38);
  973. }
  974. else {
  975. rT61put((T61*)a1,(T0 *)C,XrT67to_key(_fn));
  976. }
  977. /*FI*/_i=(_i)+(1);
  978. }
  979. }
  980. T0 * rT254try_to_undefine(T254 *C,T0 * a1,T0 * a2){
  981. T0 * R=NULL;
  982. /*IF*/if (XrT67is_frozen(a1)) {
  983. /*UT*/(T45*)oRBC27eh;
  984. rT45add_position(rT254start_position(C));
  985. rT254error(XrT67start_position(a1),(T0 *)ms482);
  986. rT254fe_undefine(a1,a2);
  987. }
  988. else {
  989. R=rT254try_to_undefine_aux(C,a1,a2);
  990. /*IF*/if (((int)R)) {
  991. XrT203set_clients(R,(C)->_clients);
  992. }
  993. else {
  994. rT254fe_undefine(a1,a2);
  995. }
  996. /*FI*/}
  997. /*FI*/return R;
  998. }
  999. T0 * rT254try_to_undefine_aux(T254 *C,T0 * a1,T0 * a2){
  1000. T0 * R=NULL;
  1001. rT254error(rT254start_position(C),(T0 *)ms1519);
  1002. rT254fe_undefine(a1,a2);
  1003. return R;
  1004. }
  1005. void rT254set_header_comment(T254 *C,T0 * a1){
  1006. /*IF*/if ((((int)a1))&&((rT59count((T59*)a1))>(1))) {
  1007. C->_end_comment=a1;
  1008. }
  1009. /*FI*/}
  1010. void rT254mapping_c_name(T254 *C){
  1011. rT50mapping_c((T50*)(C)->_base_class);
  1012. XrT67mapping_c(rT254first_name(C));
  1013. }
  1014. int rT254can_hide(T254 *C,T0 * a1,T0 * a2){
  1015. int R=0;
  1016. int _ne=0;
  1017. _ne=/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/;
  1018. /*IF*/if (((T0 *)(C)->_result_type)!=((T0 *)XrT62result_type(a1))) {
  1019. /*IF*/if ((!((C)->_result_type))||(!(XrT62result_type(a1)))) {
  1020. /*UT*/(T45*)oRBC27eh;
  1021. rT45add_position(XrT62start_position(a1));
  1022. rT254error(rT254start_position(C),(T0 *)ms501);
  1023. }
  1024. /*FI*/}
  1025. /*FI*//*IF*/if (((T0 *)(C)->_arguments)!=((T0 *)XrT62arguments(a1))) {
  1026. /*IF*/if ((!((C)->_arguments))||(!(XrT62arguments(a1)))) {
  1027. /*UT*/(T45*)oRBC27eh;
  1028. rT45add_position(XrT62start_position(a1));
  1029. rT254error(rT254start_position(C),(T0 *)ms502);
  1030. }
  1031.  else if ((rT92count((T92*)(C)->_arguments))!=(rT92count((T92*)XrT62arguments(a1)))) {
  1032. /*UT*/(T45*)oRBC27eh;
  1033. rT45add_position(XrT62start_position(a1));
  1034. rT254error(rT254start_position(C),(T0 *)ms503);
  1035. }
  1036. /*FI*/}
  1037. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  1038. /*IF*/if (((int)(C)->_result_type)) {
  1039. /*IF*/if (!(XrT58is_a_in((C)->_result_type,XrT62result_type(a1),a2))) {
  1040. /*UT*/(T45*)oRBC27eh;
  1041. rT45append((T0 *)ms504);
  1042. /*UT*/(T45*)oRBC27eh;
  1043. rT45append(XrT58run_time_mark(((T260*)a2)->_current_type));
  1044. rT45error((T45*)oRBC27eh,(T0 *)ms505);
  1045. }
  1046. /*FI*/}
  1047. /*FI*/}
  1048. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  1049. /*IF*/if (((int)(C)->_arguments)) {
  1050. /*IF*/if (!(rT92is_a_in((T92*)(C)->_arguments,XrT62arguments(a1),a2))) {
  1051. /*UT*/(T45*)oRBC27eh;
  1052. rT45add_position(XrT62start_position(a1));
  1053. /*UT*/(T45*)oRBC27eh;
  1054. rT45add_position(rT254start_position(C));
  1055. /*UT*/(T45*)oRBC27eh;
  1056. rT45append((T0 *)ms506);
  1057. /*UT*/(T45*)oRBC27eh;
  1058. rT45append(XrT58run_time_mark(((T260*)a2)->_current_type));
  1059. rT45error((T45*)oRBC27eh,(T0 *)ms507);
  1060. }
  1061. /*FI*/}
  1062. /*FI*/}
  1063. /*FI*/R=((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0);
  1064. return R;
  1065. }
  1066. T0 * rT254base_class_name(T254 *C){
  1067. T0 * R=NULL;
  1068. R=((T50*)(C)->_base_class)->_base_class_name;
  1069. return R;
  1070. }
  1071. void rT254copy(T254 *C,T0 * a1){
  1072. /*IF*//*AF*//*AE*/
  1073. memcpy(C,a1,s[C->id]);
  1074. /*FI*/}
  1075. void rT254set_rescue_compound(T254 *C,T0 * a1){
  1076. /*IF*/if ((((int)a1))&&(/*(IRF4*/0/*)*/)) {
  1077. rT254error(rT254start_position(C),(T0 *)ms402);
  1078. }
  1079. /*FI*/C->_rescue_compound=a1;
  1080. }
  1081. void rT254make_e_feature(T254 *C,T0 * a1,T0 * a2){
  1082. C->_names=a1;
  1083. C->_result_type=a2;
  1084. }
  1085. void rT254make_routine(T254 *C,T0 * a1,T0 * a2,T0 * a3,T0 * a4,T0 * a5){
  1086. rT254make_e_feature(C,a1,NULL);
  1087. C->_header_comment=a4;
  1088. C->_arguments=a2;
  1089. C->_obsolete_mark=a3;
  1090. C->_require_assertion=a5;
  1091. }
  1092. void rT254make(T254 *C,T0 * a1,T0 * a2,T0 * a3,T0 * a4,T0 * a5,T0 * a6,T0 * a7){
  1093. rT254make_routine(C,a1,a2,a3,a4,a5);
  1094. C->_local_vars=a6;
  1095. C->_routine_body=a7;
  1096. C->_use_current_state=1015;
  1097. }
  1098. void rT249warning(/*C*/T0 * a1,T0* a2){
  1099. /*UT*/(T45*)oRBC27eh;
  1100. rT45add_position(a1);
  1101. rT45warning((T45*)oRBC27eh,a2);
  1102. }
  1103. T0 * rT249current_type(T249 *C){
  1104. T0 * R=NULL;
  1105. /*IF*/if (((int)(C)->_run_compound)) {
  1106. R=((T140*)(C)->_run_compound)->_current_type;
  1107. }
  1108. /*FI*/return R;
  1109. }
  1110. void rT249fatal_error(/*C*/T0* a1){
  1111. rT45fatal_error((T45*)oRBC27eh,a1);
  1112. }
  1113. T0 * rT249to_runnable(T249 *C,T0 * a1){
  1114. T0 * R=NULL;
  1115. T0 * _e=NULL;
  1116. /*IF*/if (!((C)->_run_compound)) {
  1117. C->_run_compound=a1;
  1118. _e=XrT68to_runnable((C)->_left_side,rT249current_type(C));
  1119. /*IF*/if (!(_e)) {
  1120. rT249error(XrT68start_position((C)->_left_side),(T0 *)ms1259);
  1121. }
  1122. else {
  1123. C->_left_side=_e;
  1124. }
  1125. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  1126. _e=XrT68to_runnable((C)->_right_side,rT249current_type(C));
  1127. /*IF*/if (!(_e)) {
  1128. rT249error(XrT68start_position((C)->_right_side),(T0 *)ms1260);
  1129. }
  1130. else {
  1131. C->_right_side=_e;
  1132. }
  1133. /*FI*/}
  1134. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0))&&(XrT58is_a(XrT58run_type(rT249right_type(C)),XrT58run_type(rT249left_type(C))))) {
  1135. /*IF*/if (!(XrT68is_current((C)->_right_side))) {
  1136. /*UT*/(T45*)oRBC27eh;
  1137. rT45add_type(rT249right_type(C),(T0 *)ms1264);
  1138. /*UT*/(T45*)oRBC27eh;
  1139. rT45add_type(rT249left_type(C),(T0 *)ms1265);
  1140. rT249warning(rT249start_position(C),(T0 *)ms1266);
  1141. }
  1142. /*FI*/}
  1143. /*FI*//*(IRF3*//*UT*/(T45*)oRBC27eh;
  1144. /*(IRF3*/(((T7*)oRBC45explanation)->_count)=(0);
  1145. /*)*/rT47clear((T47*)rT45positions());
  1146. /*)*//*IF*/if (!(XrT58is_reference(XrT58run_type(rT249left_type(C))))) {
  1147. /*UT*/(T45*)oRBC27eh;
  1148. rT45add_type(XrT58run_type(rT249left_type(C)),(T0 *)ms1267);
  1149. rT249error(rT249start_position(C),(T0 *)ms1268);
  1150. }
  1151. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  1152. R=(T0 *)C;
  1153. }
  1154. /*FI*/}
  1155. else {
  1156. {T249 *n=((T249*)new(249));
  1157. rT249make(n,(C)->_left_side,(C)->_right_side);
  1158. R=(T0 *)n;}
  1159. R=rT249to_runnable((T249*)R,a1);
  1160. }
  1161. /*FI*/return R;
  1162. }
  1163. T0 * rT249left_type(T249 *C){
  1164. T0 * R=NULL;
  1165. R=XrT68result_type((C)->_left_side);
  1166. return R;
  1167. }
  1168. void rT249error(/*C*/T0 * a1,T0* a2){
  1169. /*UT*/(T45*)oRBC27eh;
  1170. rT45add_position(a1);
  1171. rT45error((T45*)oRBC27eh,a2);
  1172. }
  1173. T0 * rT249add_comment(T249 *C,T0 * a1){
  1174. T0 * R=NULL;
  1175. /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
  1176. R=(T0 *)C;
  1177. }
  1178. /*AF*/else {
  1179. {T216 *n=((T216*)new(216));
  1180. rT216make(n,(T0 *)C,a1);
  1181. R=(T0 *)n;}}
  1182. /*FI*/return R;
  1183. }
  1184. T0 * rT249start_position(T249 *C){
  1185. T0 * R=NULL;
  1186. R=XrT68start_position((C)->_left_side);
  1187. return R;
  1188. }
  1189. int rT249use_current(T249 *C){
  1190. int R=0;
  1191. /*IF*/if (XrT68use_current((C)->_left_side)) {
  1192. R=1;
  1193. }
  1194. else {
  1195. R=XrT68use_current((C)->_right_side);
  1196. }
  1197. /*FI*/return R;
  1198. }
  1199. void rT249compile_to_c(T249 *C){
  1200. int _i=0;
  1201. T0* _run=NULL;
  1202. _run=((T260*)XrT58run_class(XrT68result_type((C)->_left_side)))->_running;
  1203. /*IF*/if ((!(_run))||(rT263empty((T263*)_run))) {
  1204. XrT68compile_to_c((C)->_left_side);
  1205. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1332);
  1206. }
  1207. else {
  1208. XrT68compile_to_c((C)->_left_side);
  1209. rT40put_character((T40*)oRBC27cpp,'\75');
  1210. /*IF*/if (XrT58is_reference(XrT58run_type(rT249right_type(C)))) {
  1211. /*IF*/if (XrT68is_current((C)->_right_side)) {
  1212. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1333);
  1213. }
  1214. /*FI*/XrT68compile_to_c((C)->_right_side);
  1215. }
  1216. else {
  1217. /*UT*/(T45*)oRBC27eh;
  1218. rT45add_position(rT249start_position(C));
  1219. rT249fatal_error((T0 *)ms1334);
  1220. }
  1221. /*FI*/rT40put_string((T40*)oRBC27cpp,(T0 *)ms1335);
  1222. XrT68compile_to_c((C)->_left_side);
  1223. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1336);
  1224. XrT68compile_to_c((C)->_left_side);
  1225. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1337);
  1226. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1338);
  1227. _i=((T263*)_run)->_lower;
  1228. while (!((_i)>(((T263*)_run)->_upper))) {
  1229. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1339);
  1230. rT40put_integer((T40*)oRBC27cpp,((T260*)rT263item((T263*)_run,_i))->_id);
  1231. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1340);
  1232. _i=(_i)+(1);
  1233. }
  1234. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1341);
  1235. XrT68compile_to_c((C)->_left_side);
  1236. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1342);
  1237. }
  1238. /*FI*/}
  1239. void rT249copy(T249 *C,T0 * a1){
  1240. /*IF*//*AF*//*AE*/
  1241. memcpy(C,a1,s[C->id]);
  1242. /*FI*/}
  1243. T0 * rT249right_type(T249 *C){
  1244. T0 * R=NULL;
  1245. R=XrT68result_type((C)->_right_side);
  1246. return R;
  1247. }
  1248. void rT249make(T249 *C,T0 * a1,T0 * a2){
  1249. C->_left_side=a1;
  1250. C->_right_side=a2;
  1251. }
  1252. int rT220is_static(T220 *C){
  1253. int R=0;
  1254. R=XrT68is_static((C)->_expression);
  1255. /*IF*/if (R) {
  1256. C->_static_value_mem=XrT68static_value_mem((C)->_expression);
  1257. }
  1258. /*FI*/return R;
  1259. }
  1260. int rT220static_value(T220 *C){
  1261. int R=0;
  1262. R=(C)->_static_value_mem;
  1263. return R;
  1264. }
  1265. T0 * rT220to_runnable(T220 *C,T0 * a1){
  1266. T0 * R=NULL;
  1267. /*IF*/if (!((C)->_current_type)) {
  1268. C->_current_type=a1;
  1269. C->_expression=XrT68to_runnable((C)->_expression,a1);
  1270. R=(T0 *)C;
  1271. }
  1272. else {
  1273. R=rT220clone(C,(T0 *)C);
  1274. /*(IRF3*/(((T220*)R)->_current_type)=(NULL);
  1275. /*)*/R=rT220to_runnable((T220*)R,a1);
  1276. }
  1277. /*FI*/return R;
  1278. }
  1279. void rT220error(/*C*/T0 * a1,T0* a2){
  1280. /*UT*/(T45*)oRBC27eh;
  1281. rT45add_position(a1);
  1282. rT45error((T45*)oRBC27eh,a2);
  1283. }
  1284. int rT220c_simple(T220 *C){
  1285. int R=0;
  1286. R=XrT68c_simple((C)->_expression);
  1287. return R;
  1288. }
  1289. T0 * rT220add_comment(T220 *C,T0 * a1){
  1290. T0 * R=NULL;
  1291. /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
  1292. R=(T0 *)C;
  1293. }
  1294. else {
  1295. {T220 *n=((T220*)new(220));
  1296. rT220make(n,(T0 *)C,a1);
  1297. R=(T0 *)n;}}
  1298. /*FI*/return R;
  1299. }
  1300. T0 * rT220result_type(T220 *C){
  1301. T0 * R=NULL;
  1302. R=XrT68result_type((C)->_expression);
  1303. return R;
  1304. }
  1305. T0 * rT220start_position(T220 *C){
  1306. T0 * R=NULL;
  1307. R=XrT68start_position((C)->_expression);
  1308. return R;
  1309. }
  1310. int rT220use_current(T220 *C){
  1311. int R=0;
  1312. R=XrT68use_current((C)->_expression);
  1313. return R;
  1314. }
  1315. T0* rT220clone(T220 *C,T0* a1){
  1316. T0* R=NULL;
  1317. /*IF*/if (((int)a1)) {
  1318. R=(T0 *)new(a1->id);
  1319. AF_1
  1320. XrT28copy(R,a1);
  1321. AF_0
  1322. }
  1323. /*FI*/return R;
  1324. }
  1325. int rT220can_be_dropped(T220 *C){
  1326. int R=0;
  1327. R=XrT68can_be_dropped((C)->_expression);
  1328. return R;
  1329. }
  1330. void rT220compile_to_c_old(T220 *C){
  1331. XrT68compile_to_c_old((C)->_expression);
  1332. }
  1333. void rT220compile_to_c(T220 *C){
  1334. XrT68compile_to_c((C)->_expression);
  1335. }
  1336. int rT220to_integer(T220 *C){
  1337. int R=0;
  1338. rT220error(rT220start_position(C),(T0 *)ms175);
  1339. return R;
  1340. }
  1341. T0 * rT220written_in(T220 *C){
  1342. T0 * R=NULL;
  1343. T0 * _sp=NULL;
  1344. _sp=rT220start_position(C);
  1345. /*IF*/if (((int)_sp)) {
  1346. R=((T46*)_sp)->_base_class_name;
  1347. }
  1348. /*FI*/return R;
  1349. }
  1350. void rT220copy(T220 *C,T0 * a1){
  1351. /*IF*//*AF*//*AE*/
  1352. memcpy(C,a1,s[C->id]);
  1353. /*FI*/}
  1354. int rT220is_a(T220 *C,T0 * a1){
  1355. int R=0;
  1356. R=XrT58is_a(XrT58run_type(rT220result_type(C)),XrT58run_type(XrT68result_type(a1)));
  1357. /*IF*/if (!(R)) {
  1358. /*UT*/(T45*)oRBC27eh;
  1359. rT45add_position(rT220start_position(C));
  1360. rT220error(XrT68start_position(a1),(T0 *)ms1261);
  1361. }
  1362. /*FI*/return R;
  1363. }
  1364. void rT220make(T220 *C,T0 * a1,T0 * a2){
  1365. C->_expression=a1;
  1366. C->_comment=a2;
  1367. }
  1368. T0 * rT256first_name(T256 *C){
  1369. T0 * R=NULL;
  1370. R=rT128item((T128*)(C)->_names,1);
  1371. return R;
  1372. }
  1373. void rT256fatal_error(/*C*/T0* a1){
  1374. rT45fatal_error((T45*)oRBC27eh,a1);
  1375. }
  1376. T0 * rT256to_run_feature(T256 *C,T0 * a1,T0 * a2){
  1377. T0 * R=NULL;
  1378. {T283 *n=((T283*)new(283));
  1379. rT283make(n,a1,a2,(T0 *)C);
  1380. R=(T0 *)n;}
  1381. return R;
  1382. }
  1383. void rT256error(/*C*/T0 * a1,T0* a2){
  1384. /*UT*/(T45*)oRBC27eh;
  1385. rT45add_position(a1);
  1386. rT45error((T45*)oRBC27eh,a2);
  1387. }
  1388. void rT256fe_undefine(/*C*/T0 * a1,T0 * a2){
  1389. /*UT*/(T45*)oRBC27eh;
  1390. rT45append((T0 *)ms483);
  1391. /*UT*/(T45*)oRBC27eh;
  1392. rT45append(XrT67to_string(a1));
  1393. /*UT*/(T45*)oRBC27eh;
  1394. rT45append((T0 *)ms484);
  1395. /*UT*/(T45*)oRBC27eh;
  1396. rT45append(((T48*)((T50*)a2)->_base_class_name)->_to_string);
  1397. rT256fatal_error((T0 *)ms485);
  1398. }
  1399. int rT256is_merge_with(T256 *C,T0 * a1,T0 * a2){
  1400. int R=0;
  1401. int _ne=0;
  1402. _ne=/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/;
  1403. /*IF*/if (((T0 *)(C)->_result_type)!=((T0 *)XrT62result_type(a1))) {
  1404. /*IF*/if ((!((C)->_result_type))||(!(XrT62result_type(a1)))) {
  1405. /*UT*/(T45*)oRBC27eh;
  1406. rT45add_position(XrT62start_position(a1));
  1407. rT256error(rT256start_position(C),(T0 *)ms488);
  1408. }
  1409. /*FI*/}
  1410. /*FI*//*IF*/if (((T0 *)/*(IRF4*/NULL/*)*/)!=((T0 *)XrT62arguments(a1))) {
  1411. /*IF*/if ((!(/*(IRF4*/NULL/*)*/))||(!(XrT62arguments(a1)))) {
  1412. /*UT*/(T45*)oRBC27eh;
  1413. rT45add_position(XrT62start_position(a1));
  1414. rT256error(rT256start_position(C),(T0 *)ms489);
  1415. }
  1416.  else if ((rT92count((T92*)/*(IRF4*/NULL/*)*/))!=(rT92count((T92*)XrT62arguments(a1)))) {
  1417. /*UT*/(T45*)oRBC27eh;
  1418. rT45add_position(XrT62start_position(a1));
  1419. rT256error(rT256start_position(C),(T0 *)ms490);
  1420. }
  1421. /*FI*/}
  1422. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  1423. /*IF*/if (((int)(C)->_result_type)) {
  1424. /*IF*/if (!(XrT58is_a_in((C)->_result_type,XrT62result_type(a1),a2))) {
  1425. rT45error((T45*)oRBC27eh,(T0 *)ms491);
  1426. }
  1427. /*FI*/}
  1428. /*FI*/}
  1429. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  1430. /*IF*/if (((int)/*(IRF4*/NULL/*)*/)) {
  1431. /*IF*/if (!(rT92is_a_in((T92*)/*(IRF4*/NULL/*)*/,XrT62arguments(a1),a2))) {
  1432. /*UT*/(T45*)oRBC27eh;
  1433. rT45add_position(XrT62start_position(a1));
  1434. rT256error(rT256start_position(C),(T0 *)ms494);
  1435. }
  1436. /*FI*/}
  1437. /*FI*/}
  1438. /*FI*/R=((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0);
  1439. return R;
  1440. }
  1441. T0 * rT256start_position(T256 *C){
  1442. T0 * R=NULL;
  1443. R=XrT67start_position(rT256first_name(C));
  1444. return R;
  1445. }
  1446. void rT256collect_for(/*C*/int a1){
  1447. /*IF*/if ((a1)==(1001)) {
  1448. /*IF*/if (((int)/*(IRF4*/NULL/*)*/)) {
  1449. /*IF*/if (!(rT268fast_has((T268*)oRBC62require_collector,/*(IRF4*/NULL/*)*/))) {
  1450. rT268add_last((T268*)oRBC62require_collector,/*(IRF4*/NULL/*)*/);
  1451. }
  1452. /*FI*/}
  1453. /*FI*/}
  1454. else {
  1455. /*IF*/if (((int)/*(IRF4*/NULL/*)*/)) {
  1456. rT157add_into((T157*)/*(IRF4*/NULL/*)*/,oRBC62assertion_collector);
  1457. }
  1458. /*FI*/}
  1459. /*FI*/}
  1460. void rT256add_into(T256 *C,T0 * a1){
  1461. T0 * _fn=NULL;
  1462. int _i=0;
  1463. C->_base_class=rT46base_class((T46*)XrT67start_position(rT128item((T128*)(C)->_names,1)));
  1464. _i=1;
  1465. while (!((_i)>(rT128count((T128*)(C)->_names)))) {
  1466. _fn=rT128item((T128*)(C)->_names,_i);
  1467. /*IF*/if (rT61has((T61*)a1,XrT67to_key(_fn))) {
  1468. _fn=XrT62first_name(rT61at((T61*)a1,XrT67to_key(_fn)));
  1469. /*UT*/(T45*)oRBC27eh;
  1470. rT45add_position(XrT67start_position(_fn));
  1471. /*UT*/(T45*)oRBC27eh;
  1472. rT45add_position(XrT67start_position(rT128item((T128*)(C)->_names,_i)));
  1473. rT45error((T45*)oRBC27eh,(T0 *)ms419);
  1474. /*UT*/(T45*)oRBC27eh;
  1475. rT45append(XrT67to_string(_fn));
  1476. rT45error((T45*)oRBC27eh,(T0 *)ms38);
  1477. }
  1478. else {
  1479. rT61put((T61*)a1,(T0 *)C,XrT67to_key(_fn));
  1480. }
  1481. /*FI*/_i=(_i)+(1);
  1482. }
  1483. }
  1484. T0 * rT256try_to_undefine(T256 *C,T0 * a1,T0 * a2){
  1485. T0 * R=NULL;
  1486. /*IF*/if (XrT67is_frozen(a1)) {
  1487. /*UT*/(T45*)oRBC27eh;
  1488. rT45add_position(rT256start_position(C));
  1489. rT256error(XrT67start_position(a1),(T0 *)ms482);
  1490. rT256fe_undefine(a1,a2);
  1491. }
  1492. else {
  1493. R=rT256try_to_undefine_aux(C,a1,a2);
  1494. /*IF*/if (((int)R)) {
  1495. XrT203set_clients(R,(C)->_clients);
  1496. }
  1497. else {
  1498. rT256fe_undefine(a1,a2);
  1499. }
  1500. /*FI*/}
  1501. /*FI*/return R;
  1502. }
  1503. T0 * rT256try_to_undefine_aux(T256 *C,T0 * a1,T0 * a2){
  1504. T0 * R=NULL;
  1505. /*UT*/(T45*)oRBC27eh;
  1506. rT45add_position(rT256start_position(C));
  1507. rT256error(XrT67start_position(a1),(T0 *)ms1518);
  1508. rT256fe_undefine(a1,a2);
  1509. return R;
  1510. }
  1511. int rT256can_hide(T256 *C,T0 * a1,T0 * a2){
  1512. int R=0;
  1513. int _ne=0;
  1514. _ne=/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/;
  1515. /*IF*/if (((T0 *)(C)->_result_type)!=((T0 *)XrT62result_type(a1))) {
  1516. /*IF*/if ((!((C)->_result_type))||(!(XrT62result_type(a1)))) {
  1517. /*UT*/(T45*)oRBC27eh;
  1518. rT45add_position(XrT62start_position(a1));
  1519. rT256error(rT256start_position(C),(T0 *)ms501);
  1520. }
  1521. /*FI*/}
  1522. /*FI*//*IF*/if (((T0 *)/*(IRF4*/NULL/*)*/)!=((T0 *)XrT62arguments(a1))) {
  1523. /*IF*/if ((!(/*(IRF4*/NULL/*)*/))||(!(XrT62arguments(a1)))) {
  1524. /*UT*/(T45*)oRBC27eh;
  1525. rT45add_position(XrT62start_position(a1));
  1526. rT256error(rT256start_position(C),(T0 *)ms502);
  1527. }
  1528.  else if ((rT92count((T92*)/*(IRF4*/NULL/*)*/))!=(rT92count((T92*)XrT62arguments(a1)))) {
  1529. /*UT*/(T45*)oRBC27eh;
  1530. rT45add_position(XrT62start_position(a1));
  1531. rT256error(rT256start_position(C),(T0 *)ms503);
  1532. }
  1533. /*FI*/}
  1534. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  1535. /*IF*/if (((int)(C)->_result_type)) {
  1536. /*IF*/if (!(XrT58is_a_in((C)->_result_type,XrT62result_type(a1),a2))) {
  1537. /*UT*/(T45*)oRBC27eh;
  1538. rT45append((T0 *)ms504);
  1539. /*UT*/(T45*)oRBC27eh;
  1540. rT45append(XrT58run_time_mark(((T260*)a2)->_current_type));
  1541. rT45error((T45*)oRBC27eh,(T0 *)ms505);
  1542. }
  1543. /*FI*/}
  1544. /*FI*/}
  1545. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  1546. /*IF*/if (((int)/*(IRF4*/NULL/*)*/)) {
  1547. /*IF*/if (!(rT92is_a_in((T92*)/*(IRF4*/NULL/*)*/,XrT62arguments(a1),a2))) {
  1548. /*UT*/(T45*)oRBC27eh;
  1549. rT45add_position(XrT62start_position(a1));
  1550. /*UT*/(T45*)oRBC27eh;
  1551. rT45add_position(rT256start_position(C));
  1552. /*UT*/(T45*)oRBC27eh;
  1553. rT45append((T0 *)ms506);
  1554. /*UT*/(T45*)oRBC27eh;
  1555. rT45append(XrT58run_time_mark(((T260*)a2)->_current_type));
  1556. rT45error((T45*)oRBC27eh,(T0 *)ms507);
  1557. }
  1558. /*FI*/}
  1559. /*FI*/}
  1560. /*FI*/R=((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0);
  1561. return R;
  1562. }
  1563. T0 * rT256base_class_name(T256 *C){
  1564. T0 * R=NULL;
  1565. R=((T50*)(C)->_base_class)->_base_class_name;
  1566. return R;
  1567. }
  1568. void rT256copy(T256 *C,T0 * a1){
  1569. /*IF*//*AF*//*AE*/
  1570. memcpy(C,a1,s[C->id]);
  1571. /*FI*/}
  1572. void rT256make(T256 *C,T0 * a1,T0 * a2){
  1573. C->_names=a1;
  1574. C->_result_type=a2;
  1575. }
  1576. T0 * rT226current_type(T226 *C){
  1577. T0 * R=NULL;
  1578. R=rT231current_type((T231*)(C)->_when_list);
  1579. return R;
  1580. }
  1581.